<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Title</title>
</head>
<body>

</body>
<script>
	{
		// 基本使用
		// const [a,c,b] = [1,2,3];
		// console.log(a,b,c);// 1 3 2
	}
	{
		//忽略元素:在解构模式中，可以直接省略元素，只为感兴趣的元素提供变量名 。
		// const [a,,,d] = [1,2,3,4];
		// console.log(a,d);// 1 4
	}
	{
		// 赋值上下文 :对之前定义的变量进行修改（重置）操作。
		// let userName = "zhangsan";
		// let age = 12;
		// let arr = [18,"lisi"];
		// [age,userName] = arr;
		// console.log(userName,age);// lisi 18
		
		// let a = 1;
		// let b = 2;
		// let obj = {
		// 	a:100,
		// 	b:200
		// };
		// ({a,b} = obj);
		// console.log(a,b)
		
	}
	{
		// let a = 1;
		// let b = 2;
		// [b,a] = [a,b];
		// console.log(a,b);// 2 1
		
		// let a = 100;
		// let b = 200;
		// a = a + b;// 300;
		// b = a-b;// 100;
		// a = a - b;// 200;
		// console.log(a,b);
	}
	{
		//默认值
		// const [a,b,c,d=100] = [1,2,3,200];
		// console.log(a,b,c,d);
	}
	{
		// 嵌套数组解构
		// let [a,b,c,[d,e,[f,m]]] = [1,2,3,[4,5,[6,7]]]
		// console.log(a,b,c,d,e,f,m);
	}
	{
		// 不定元素
		// // const [a,b,...c] = [1,2,3,4];
		// // console.log(a,b,c);
		//
		//
		// function fn([a,b,...c]){
		// 	console.log(a,b,c)
		// }
		// fn([1,2,3,4])
	}
	{
		// 数组复制
		let arr = [1,2,3,4];
		let arr2 = [].concat(arr);
		let arr3 = arr.concat();
		let arr4 = [...arr];
		console.log(arr2===arr,arr3===arr,arr4=== arr);
	}
</script>
</html>